"""
如果数组的每一对相邻元素都是两个奇偶性不同的数字，则该数组被认为是一个 特殊数组 。
周洋哥有一个整数数组 nums 和一个二维整数矩阵 queries，对于 queries[i] = [fromi, toi]，请你帮助周洋哥检查子数组 nums[fromi..toi] 是不是一个 特殊数组 。
返回布尔数组 answer，如果 nums[fromi..toi] 是特殊数组，则 answer[i] 为 true ，否则，answer[i] 为 false 。
示例 1：
输入：nums = [3,4,1,2,6], queries = [[0,4]]
输出：[false]
解释：
子数组是 [3,4,1,2,6]。2 和 6 都是偶数。
示例 2：
输入：nums = [4,3,1,6], queries = [[0,2],[2,3]]
输出：[false,true]
解释：
子数组是 [4,3,1]。3 和 1 都是奇数。因此这个查询的答案是 false。
子数组是 [1,6]。只有一对：(1,6)，且包含了奇偶性不同的数字。因此这个查询的答案是 true。
"""
# 自己写的方法一，能用，但是超时
from itertools import pairwise


class Solution:
    def isArraySpecial(self, nums: list[int], queries: list[list[int]]) -> list[bool]:
        answer = []
        ql = len(queries)
        for i in range(ql):
            fromi = queries[i][0]
            toi = queries[i][1]
            new_nums = nums[fromi:toi + 1]
            if all(x % 2 != y % 2 for x, y in pairwise(new_nums)):
                answer.append(True)
            else:
                answer.append(False)
        return answer


# 灵神写的，可以看一下

nums = [4, 3, 1, 6]
queries = [[0, 2], [2, 3]]
aa = Solution()
dd = aa.isArraySpecial(nums, queries)
print(dd)
